package com.lpf;

import cn.hutool.core.io.FileUtil;

import java.lang.instrument.ClassFileTransformer;
import java.security.ProtectionDomain;

/**
 * Transformer 实现了 ClassFileTransformer，其中的 transform() 方法实现可以修改加载到的类的定义。
 */
public class Transformer implements ClassFileTransformer {

    public byte[] transform(ClassLoader l, String className, Class<?> c, ProtectionDomain pd, byte[] b) {
        if (!c.getSimpleName().equals("TestClass")) {
            return null; // 只修改 TestClass 的定义
        }
        // 读取 TestClass.class 这个 class 文件，作为 TestClass 类的新定义
        return FileUtil.readBytes("E:\\IdeaProjects\\skywalking\\skywalking-learning\\java-agent\\src\\main\\resources\\TestClass.class");
    }

}
